In most computer systems involving a central host processor and numerous distributed access devices such as video display terminals, information is transferred between the host and each access device via a screen display formed as an integral part of the access device. The screen serves the two-fold purpose of displaying input information provided by a user as well as displaying user-readable output information, generated by host processing, to the user. The input information is generally provided by the user via entries on a keyboard also formed as an integral part of each access device. Input or output information is typically composed of an arrangement of system-provided words or phrases followed by user or system-supplied data fields displayed in a predetermined pattern on the screen.
In conventional systems, an application executing on the host utilizes only a limited number of screen patterns or formats so that only a standard set of screen images corresponding to the formats may be called into view by the user for input or invoked by the host processing for output. The definition of each screen format is typically deeply embedded in the source code for the application. There is essentially no flexibility provided to the user to allow for the creation of customized formats and, correspondingly, their screen images.
In order to expand the user base of a previously developed software application system, particularly to allow foreign affiliates of the system developer full utilization of system capabilities, major modifications to the source code of the system have conventionally been required, such as by rewriting significant portions of the code implementing input/output (I/O) interface functions.
The foremost modification in the above special situation is that of translating the descriptive words or phrases from the original language (e.g., English) to the language (e.g., Spanish) of the foreign affiliate. If there are affiliates from numerous foreign countries then, besides the effort of rewriting the source code, multiple copies of modified source code require storing, tracking and updating. Such a task becomes unwieldly, burdensome and costly. Thus, for example, if a source code module uses or produces user-viewable information, then there must be a different copy of the module for each language executable by that software. Besides the actual system copies of the code, support software is required to inform the system developer of the status of the multiple copies. Moreover, additional storage devices are needed to store all the additional versions of the software. For a large scale system involving millions of lines of code and thousands of modules, the storage requirements may become enormous.
In addition to the problem of direct language translation, there are also problems as how to treat the data supplied to the data fields. It is usually required that certain data be converted, such as by converting from non-metric to metric, and other data be reordered, such as month/day/year versus day/month/year which is the convention of some foreign affiliates.
The solutions to these problems have not been addressed under the constraint of no impact upon underlying source code, that is, having a translation process which is transparent to the host system.